/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Service;

import DB.EnlaceProfesionalExternoPaciente;
import DB.HibernateUtil;
import DB.Paciente;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author Rodrigo
 */
@WebService()
public class EnlaceProfesionalExternoPacienteWS {
        @WebMethod(operationName = "agregarEnlaceProfesionalExternoPaciente")
    public boolean agregarEnlaceProfesionalExternoPaciente(@WebParam(name = "rutProfesional")String rutProfesional,
                                                    @WebParam(name = "rutPaciente")String rutPaciente) {

        EnlaceProfesionalExternoPaciente enlace= new EnlaceProfesionalExternoPaciente();
        enlace.setRutProfesional(rutProfesional);
        enlace.setRutPaciente(rutPaciente);
        enlace.setActivo(true);
        return ControladorDeObjetos.saveObject(enlace);
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "listarEnlaceProfesionalExternoPacientes")
    public List<EnlaceProfesionalExternoPaciente> listarEnlaceProfesionalExternoPacientes() {
        //TODO write your implementation code here:
        return ControladorDeObjetos.getAllObjectByClassType(EnlaceProfesionalExternoPaciente.class);
    }

     /**
     * Web service operation
     */
    @WebMethod(operationName = "modificarEnlaceProfesionalExternoPaciente")
    public boolean modificarEnlaceProfesionalExternoPaciente(@WebParam(name = "rutProfesional")String rutProfesional,
                                                    @WebParam(name = "rutPaciente")String rutPaciente,
                                                    @WebParam(name = "activo")boolean activo ) {

        EnlaceProfesionalExternoPaciente enlace= new EnlaceProfesionalExternoPaciente();
        enlace.setRutProfesional(rutProfesional);
        enlace.setRutPaciente(rutPaciente);
        enlace.setActivo(true);
        return ControladorDeObjetos.updateObject(enlace);
    }
    @WebMethod(operationName = "isPacienteEnlazadoAProfesionalExterno")
    public boolean isPacienteEnlazadoAProfesionalExterno(@WebParam(name = "rutPaciente")String rutPaciente, @WebParam(name = "rutProfesional")String rutProfesional ) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        Transaction trans = session.beginTransaction();
        Query q = session.createQuery("from EnlaceProfesionalExternoPaciente e where e.rutProfesional='"+rutProfesional+"' and e.rutPaciente='"+rutPaciente+"'");
        if(q.list().isEmpty())
            return false;
        return true;
    }

}
